In [1303]:
%matplotlib inline
%precision %.14g
import pandas as pd
from pylab import *
import mpld3
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
rcParams['figure.figsize'] = 12, 6
pd.set_option('display.max_rows',1000)
mpld3.enable_notebook()
DATA_PATH = "../DAP/"
As of Sept 21, this previous data updated by DBM with this http://www.dbm.gov.ph/wp-content/uploads/DAP/Dap%20Page/Projects/7302014%20-%20Detailed%20List%20of%20DAP%20Projects.Open_08042014.csv.
However, we will still be using the old data to compare changes.
In [1304]:
names = ['No','Tranche','Approval','Agency','Description','Proposed','Released','Balance','Remarks']
dap_data = pd.read_csv(DATA_PATH + "DAP Projects as of July 15 2014_List_73114.csv",names=names)
dap_data.fillna(0,inplace=True)
dap_data['Proposed'][dap_data.Proposed == ' - ']=0
dap_data['Balance'][dap_data.Balance == ' - ']=0
dap_data['Released'][dap_data.Released == ' - ']=0
dap = dap_data[6:]
dap['Proposed'] = dap['Proposed'].apply(lambda x: float(x))
dap['Balance'] = dap['Balance'].apply(lambda x: float(x))
dap['Released'] = dap['Released'].apply(lambda x: float(x))
dap['Department'] = 0
dap['Department'][dap.Agency.str.contains('DOF')]='DOF'
dap['Department'][dap.Agency.str.contains('BSP')]='DOF'
dap['Department'][dap.Agency.str.contains('NHA')]='NHA'
dap['Department'][dap.Agency.str.contains('ARMM')]='ARMM'
dap['Department'][dap.Agency.str.contains('DPWH')]='DPWH'
dap['Department'][dap.Agency.str.contains('DepEd')]='DEPED'
dap['Department'][dap.Agency.str.contains('PNP')]='PNP'
dap['Department'][dap.Agency.str.contains('LRTA')]='LRTA'
dap['Department'][dap.Agency.str.contains('DA')]='DA'
dap['Department'][dap.Agency.str.contains('OPAPP')]='OPAPP'
dap['Department'][dap.Agency.str.contains('DOST')]='DOST'
dap['Department'][dap.Agency.str.contains('DAR')]='DAR'
dap['Department'][dap.Agency.str.contains('NEA')]='NEA'
dap['Department'][dap.Agency.str.contains('TESDA')]='TESDA'
dap['Department'][dap.Agency.str.contains('PHILPOST')]='PHILPOST'
dap['Department'][dap.Agency.str.contains('DBM')]='DBM'
dap['Department'][dap.Agency.str.contains('TIDCORP')]='TIDCORP'
dap['Department'][dap.Agency.str.contains('CHED')]='CHED'
dap['Department'][dap.Agency.str.contains('Phil. Heart')]='PHIL HEART CENTER'
dap['Department'][dap.Agency.str.contains('DOH')]='DOH'
dap['Department'][dap.Agency.str.contains('LLDA')]='LLDA'
dap['Department'][dap.Agency.str.contains('DILG')]='DILG'
dap['Department'][dap.Agency.str.contains('HR')]='HOR'
dap['Department'][dap.Agency.str.contains('DOT')]='DOT'
dap['Department'][dap.Agency.str.contains('NEDA')]='NEDA'
dap['Department'][dap.Agency.str.contains('DPWH')]='DPWH'
dap['Department'][dap.Agency.str.contains('COA')]='COA'
dap['Department'][dap.Agency.str.contains('PIDS')]='PIDS'
dap['Department'][dap.Agency.str.contains('DND')]='DND'
dap['Department'][dap.Agency.str.contains('DSWD')]='DSWD'
dap['Department'][dap.Agency.str.contains('LCOP')]='LCOP'
dap['Department'][dap.Agency.str.contains('Credit Info')]='CREDIT INFO CORP'
dap['Department'][dap.Agency.str.contains('DOLE')]='DOLE'
dap['Department'][dap.Agency.str.contains('DPWH')]='DPWH'
dap_summary = dap[['Department','Agency','Proposed','Released','Balance']].groupby(['Department','Agency']).sum()
dap_summary.sort(columns='Released',ascending=False)
#in million pesos
Out[1304]:
Proposed
Released
Balance
Department
Agency
DOF
DOF-BSP: Additional Equity Infusion to the BSP�s Authorized Capital Stock
20000.000
20000.000
0.000
0
Other Various Local Projects
17585.000
17310.195
274.805
NHA
NHA: On-Site Development for Families Living along Dangerous Areas
10000.000
10000.000
0.000
DOF
BSP: First Equity Infusion out of P40 B Capitalization under the BSP Law
10000.000
10000.000
0.000
ARMM
ARMM: Comprehensive Peace and Development Intervention
8592.000
8389.954
202.046
0
LGU Support Fund
6500.000
6499.100
0.900
DPWH
DPWH: Various Infrastructure Projects
5500.000
5500.000
0.000
DPWH-DOT: Tourism Road Infrastucture Project
5000.000
5000.000
0.000
GOCCs/DPWH/LGUs: Priority Local Projects Nationwide
4600.000
4459.881
140.119
DEPED
DepEd: Public-Private Partnership for School Infrastructure Project Phase II
4077.000
4070.722
6.278
DPWH
DPWH: Various Priority Infrastructure Projects
4077.504
3989.110
88.394
DEPED
GSIS-DepEd: GSIS Premium Payments for DepEd Personnel
4077.000
3461.685
615.315
CHED
CHED: Institutional Capacity Building of Leading State Universities
3356.600
3356.600
0.000
DOF
DOF-BOC: To Settle the Principal Obligations with PDIC Consistent with the Agreement with the CISS and SGS
2799.611
2799.611
0.000
PNP
PNP: Additional Budget for PNP Modernization Program (First Tranche)
2000.000
2000.000
0.000
DPWH
DPWH: National Road Projects in the Province of Tarlac
2000.000
2000.000
0.000
0
GOCCs/NGAs: Other Various Local Projects
1880.000
1880.000
0.000
LRTA
LRTA: Rehabilitation of LRT 1 and 2
1867.512
1867.512
0.000
OPAPP
OPAPP: Activities for Peace Process (PAMANA)
1819.000
1819.000
0.000
DA
DA: Irrigation, FMRs and Integrated Community-Based Multi-Species Hatchery and Aquasilvi Farming
1637.880
1637.880
0.000
DOST
DOST: Nationwide Disaster Risk, Exposure, Assessment and Mitigation (DREAM)
1600.000
1600.000
0.000
0
PHIC: Obligations Incurred (Premium Subsidy for NHIP Indigent Families) in January-June 2010, Booked for Payment in July-December 2010
1496.103
1496.103
0.000
NG: Expanded Government Internship Program
1337.091
1332.768
4.323
DAR
DAR: Agrarian Reform Communities Project 2
1292.953
1292.953
0.000
NEA
NEA: Release of Funds for the Sitio Electrification Project
1264.000
1264.000
0.000
DPWH
DPWH: Budget Deficit for the Secondary National Road Project of Millenium Challenge Account-Philippines under the Compact between the US Government and the GPH
1200.000
1200.000
0.000
TESDA
TESDA: Training Program in Partnership with BPO Industry and Other Sectors
1100.000
1100.000
0.000
DA
DA: Facility for Credit, Insurance and Guarantee Exclusively for Agrarian Reform Beneficiaries which Will Be Managed by the LBP, in Coordination with DA
1000.000
1000.000
0.000
DA: Mindanao Rural Development Project
919.306
919.306
0.000
PNP
PNP: Creation/Hiring of 15,000 Non-Uniformed Personnel Positions
1878.000
860.705
1017.295
DOF
DOF-BIR: NPSTAR, Centralization of Data Processing and Others (To be Synchronized with GIFMIS Activities)
758.385
758.385
0.000
0
Development Assistance to the Province of Quezon
750.000
750.000
0.000
DPWH
OPPAP, DND-AFP, DPWH, and ARMM: Payapa at Masaganang Pamayanan Program (PAMANA)
745.456
656.700
88.756
0
PhilPost: Purchase of Foreclosed Property, Payment of Mandatory Obligations, (GSIS, Philhealth, ECC), Franking Privilege
644.000
644.000
0.000
DPWH
DPWH: Payment of Right-of-Way Claims Nationwide
719.020
630.020
89.000
DBM
DBM/NSO: Conduct of National Survey of Farmers/ Fisherfolks/ IPs
625.000
605.077
19.923
TIDCORP
TIDCORP: NG Equity Infusion
570.000
570.000
0.000
CHED
CHED: Grants-in-Aid Program for Poverty Alleviation
500.000
500.000
0.000
DOT
DOT: Tourism Media Advertising Campaign
500.000
500.000
0.000
DOLE
DOLE-TESDA: Additional Funding for the Expanded Training for Work Scholarship Program
500.000
500.000
0.000
NHA
NHA: Housing for BFP/BJMP
500.000
500.000
0.000
NHA: Resettlement of North Triangle Residents to Camarin A7
450.000
450.000
0.000
DA
DA-NIA: Jalaur River Multipurpose Project
450.000
450.000
0.000
CHED
CHED: Modernizing HE Facilities
427.800
427.800
0.000
DA
DA: NIA Agno River Integrated Irrigation Project
411.404
411.404
0.000
0
HGC: Equity Infusion for Credit Insurance and Mortgage Guaranty Operations of HGC
400.000
400.000
0.000
PHIL HEART CENTER
Phil. Heart Center: Upgrading of Ageing Physical Plant and Medical Equipment
357.000
357.000
0.000
0
PCOO-PTNI: People�s Television Network, Inc. Funding Support for Operational Requirements
342.537
342.537
0.000
DND
DND-(PAF) AFP: Additional Funds to Support PAF Unfunded Requirements to Address its Current Capability Gap
307.500
307.500
0.000
DOST
DOST: Establishment of the Advanced Failure Analysis Laboratory
300.000
300.000
0.000
DPWH
DPWH MOA with MMDA: Priority Flood Control Projects
295.571
295.571
0.000
DOH
DOH: Hiring of Nurses and Midwives
294.000
294.000
0.000
0
PCMC: Capital and Equipment Renovation
280.000
280.000
0.000
DOST
DOST: Establishment of National Meteorological and Climate Center
275.000
275.000
0.000
LLDA
LLDA: Infrastructure Upgrade and Development Program
270.000
270.000
0.000
DOST
DepEd/ERDT-DOST: Thin Client Cloud Computing Project
270.000
270.000
0.000
DILG
DILG: Local Governance Performance Management Program _ Performance-Based Challenge Fund for LGUs
253.000
253.000
0.000
DSWD
DILG: Performance Challenge Fund (People Powered Community Driven Development with DSWD and NAPC)
250.000
250.000
0.000
HOR
HR: Construction of the Legislative Library and Archive Building/Congressional E-Library
250.000
250.000
0.000
DOT
DOT: Roxas Boulevard Redevelopment Plan
250.000
250.000
0.000
0
PSG: Malacanang Security and Communication Plan
248.327
248.327
0.000
DA
MMDA: Solid Waste Disposal Project
230.000
230.000
0.000
DOT
DOT-National Parks Dev�t Committee: Kilometer Zero-National Monument Hardscape and Softscape Redevelopment Project
207.000
207.000
0.000
NEDA
NEDA: Various Infrastructure Improvement Projects
207.040
206.896
0.144
DOT
DOT: Transfer of the DOT Offices and its Attached Agencies
200.260
200.260
0.000
0
BOC: IT Infrastructure Maintenance Project
192.640
192.640
0.000
DPWH
DPWH MOA with MMDA: Urban Renewal, Traffic Management, Flood Control (Phase I)
154.403
154.403
0.000
DOST
DOST: Enhancement of Doppler Radar Network for National Weather Watch, Accurate Forecasting and Flood Early Warning
150.000
150.000
0.000
DPWH
DPWH: Permanent Maguiling Bridge Project
145.000
145.000
0.000
COA
COA: IT Infrastructure Program and Hiring of Additional Litigation Experts
143.700
143.700
0.000
DILG
DILG: Construction of 20 PNP Police Stations
128.210
128.210
0.000
DA
DA-NFA: Provision for the Mechanical Dryers
121.000
121.000
0.000
PNP
PNP: Additional Funds for MOOE of PNP Regional Offices/PNP Stations
115.556
115.556
0.000
DOT
DOTC-PCG: Capability Requirements for the Operations of PCG in the West Philippine Sea
1600.000
104.673
1495.327
NHA
NHA: Relocation Sites for Informal Settlers along Iloilo River and its Tributaries
100.000
100.000
0.000
PIDS
PIDS: Purchase of Land to Relocate the PIDS Office and Building Construction
100.000
100.000
0.000
DILG
DILG: DILG-Central Office to a New NAPOLCOM Building
100.000
100.000
0.000
DSWD
DSWD: GOP Counterpart for KALAHI-CIDSS Millenium Challenge Corporation Grant
95.246
95.246
0.000
DPWH
DPWH: Repair of Road Network Inside Camp Bagong Diwa, Taguig City
85.755
85.755
0.000
CREDIT INFO CORP
Credit Info Corp.: Establishment of Centralized Credit Information System
75.000
75.000
0.000
LCOP
LCOP: Bio-Regenerative Technology Program (Stem Cell Research)
70.000
70.000
0.000
DND
DND-AFP: Rehabilitation of the Air Education and Training Command
60.000
60.000
0.000
DOLE
DOLE: Capacity Enhancement to Meet Labor Standards Requirement
180.000
57.720
122.280
0
National Archives of the Philippines: Philippine Digitization Fund
50.000
50.000
0.000
DOT
DOT-Corregidor Foundation: Emergency Repairs for the Corregidor North Dock
46.713
46.713
0.000
DPWH
DPWH: PNP Maritime Group Training Facility
45.000
45.000
0.000
DOT
DOTC-PCG: Additional MOOE for Patrol Operations at Bajo de Masinloc
44.171
44.171
0.000
DILG
DILG: Special Capacity Building Project for People�s and Non-Government Organization
43.323
43.323
0.000
LCOP
LCOP: Pediatric Pulmonary Program
35.000
35.000
0.000
DND
DND-PAF: On-Base Housing Facilities and Communication Equipment
29.800
29.800
0.000
DILG
DILG: Replacement of 34 Dilapidated Units and 4 Motorcycles of the DILG-NPC
27.470
27.470
0.000
DOT
DOT: Preservation of the Cine Corregidor Complex
25.000
25.000
0.000
DPWH
DPWH: Restoration and Rehabilitation of Various Historical and State Rooms in the Malacanang Palace
20.440
20.440
0.000
0
OEO-FDCP: Establishment of the National Film Archive and Local Cinematheques, and Other Local Activities
20.000
20.000
0.000
DILG
DILG: High Profile Jail Facility
20.000
20.000
0.000
0
DOJ: Operating Requirements of 50 Investigation Agents and 15 State Attorneys
11.200
11.200
0.000
DPWH
DPWH: Construction of the PNP Crisis Action Force Building
8.722
8.722
0.000
DA
DAP: Harmonization of National Government Performance Monitoring and Reporting Systems
5.000
5.000
0.000
DPWH
DPWH: Incentives of Personnel Affected by the Rationalization Program
2286.761
0.000
2286.761
DOT
DOTC-LRTA: Rehabilitation/Extension of LRT Lines 1 and 2
1400.000
0.000
1400.000
NEA
NEA: Rural Electrification for Barangay and Sitios
1000.000
0.000
0.000
DOT
DOT-National Parks Dev�t. Committee: Kilometer Zero-National Monument Hardscape and Softscape Redevelopment Project
207.100
0.000
0.000
DOT-Mun. of Maragondon, Cavite: Financial Support for the Gat Bonifacio Shrine and Eco-Tourism Park
149.340
0.000
0.000
DSWD
DSWD: Pilot Testing of Enhanced Provincial LGU Engagement for National Community Driven Development Project
209.000
0.000
0.000
DOT
DOTC-MRT: Purchase of Additional MRT Cars
4500.000
0.000
4500.000
DPWH
NG thru DPWH: Re-Acquisition of Air Rights Sold by PNR to HGC
1260.000
0.000
1260.000
DAR
DAR: Landowners� Compensation
0.000
0.000
0.000
DPWH
DAR-DPWH: Tulay ng Pangulo sa Kaunlaran Pang-Agraryo (French Bridge)
1800.000
0.000
0.000
0
NSO: Registry System for Basic Sectors in Agriculture Phase 2
1492.000
0.000
0.000
DPWH
DOH-DPWH: Construction and Rehabilitation of Rural Health Units
1960.000
0.000
0.000
0
NHCP: Rehabilitation of the Watson Building near Malacanang
7.000
0.000
0.000
NHCP: Detailed Engineering of Goldenberg Mansion and Teus House, Malacanang
4.000
0.000
0.000
DOF
NG thru DOF: Re-Acquisition of Air Rights Sold by PNR to HGC
2243.000
0.000
0.000
In [1305]:
dap_summary.sum()
Out[1305]:
Proposed 167061.410
Released 144378.304
Balance 13611.666
dtype: float64
In [1333]:
#names = [u'DAP Project Number', u'DAP Number', u'PROJECT TYPE', u'AGENCY', u'DESCRIPTION',
# u'SARO NO.', u'DATE ISSUED', u'P/A/P_CODE', u'P/A/P_DESCRIPTION', u'DEFICIENCY (per OP approval)',
# u'releases_2', u'SOURCES OF FUND', u'APPRO. SOURCE', u'STATUS_Obligation', u'STATUS_Disbursement',
# u'STATUS_Output', u'GAA/Page #']
names = [u'DAP Project Number', u'DAP Number', u'PROJECT TYPE', u'AGENCY', u'DESCRIPTION',
u'SARO NO.', u'DATE ISSUED', u'P/A/P_CODE', u'P/A/P_DESCRIPTION', u' DEFICIENCY',
u'RELEASES', u'RELEASES_2',
u'SOURCES OF FUND', u'APPRO. SOURCE', u'STATUS_Obligation',
u'STATUS_Disbursement', u'STATUS OUTPUTS', u'GAA/Page #']
dap_detailed_list = pd.read_csv(DATA_PATH + "DAP Projects as of 08042014.csv", names = names)
dap_detailed_list.fillna(0,inplace=True)
dap_detailed_list = dap_detailed_list[1:]
dap_detailed_list['RELEASES_2'] = dap_detailed_list['RELEASES_2'].apply(lambda x: convert_amount(x))
c=dap_detailed_list[dap_detailed_list['SARO NO.'] != 0]
c['RELEASES_2'].sum()
#dap_detailed_list
Out[1333]:
142989508
In [1332]:
totals_names = [' GRAND TOTAL - DAP 1 ',' GRAND TOTAL - DAP 2 ',' GRAND TOTAL - DAP 3 ',' GRAND TOTAL - DAP 4 ',
' GRAND TOTAL - DAP 5 ', ' GRAND TOTAL - DAP 6 ']
totals = dap_detailed_list[dap_detailed_list['DESCRIPTION'].isin(totals_names)]
totals['RELEASES_2'].sum()
Out[1332]:
103936138
Third source data we will be using. The link to spreadsheet was taken down from the DBM site. But you can still directly access it here. http://www.dbm.gov.ph/wp-content/uploads/DAP/Dap%20Page/Projects/DAP%20with%20Proponents%20FINAL.xlsx
In [1308]:
names = [u'No', u'PROJECT NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P', 'DESCRIPTION',
u'Other Details (leave blank if none)', u'APPRO\n(GAA)',
u'DEFICIENCY\n(per OP approval)', u'RELEASES', 'A', 'B',
u'RELEASES', u'TOTAL', u'SOURCES OF FUND', u'APPRO. SOURCE',
u'STATUS', nan, nan, nan, nan, u'Remarks', u'GAA/Page #', nan, nan,
u'PROPONENT', nan],
updated_dap_data01 = pd.read_excel(DATA_PATH + "DAP with Proponents FINAL.xlsx",sheetname='DAP 1')
updated_dap_data02 = pd.read_excel(DATA_PATH + "DAP with Proponents FINAL.xlsx",sheetname='DAP 2')
updated_dap_data03 = pd.read_excel(DATA_PATH + "DAP with Proponents FINAL.xlsx",sheetname='DAP 3')
updated_dap_data04 = pd.read_excel(DATA_PATH + "DAP with Proponents FINAL.xlsx",sheetname='DAP 4')
updated_dap_data05 = pd.read_excel(DATA_PATH + "DAP with Proponents FINAL.xlsx",sheetname='DAP 5')
updated_dap_data06 = pd.read_excel(DATA_PATH + "DAP with Proponents FINAL.xlsx",sheetname='DAP 6')
#updated_dap_data0.columns = names
In [1309]:
updated_dap_data01.fillna(0,inplace=True)
c=updated_dap_data01[['Unnamed: 1','Unnamed: 2','Unnamed: 3','Unnamed: 4','Unnamed: 5','Unnamed: 14',
'Unnamed: 15','Unnamed: 16','Unnamed: 17','Unnamed: 12',
'Unnamed: 21',
'Unnamed: 22','Unnamed: 25']]
names = ['PROJECT_NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P', 'DESCRIPTION', u'SOURCES OF FUND',
u'APPRO. SOURCE', u'OBLIGATION', 'DISBURSEMENT', 'TOTAL AMOUNT',
u'Remarks',
u'GAA/Page #', u'PROPONENT']
c.columns = names
total_releases_01=c['TOTAL AMOUNT'][c['PROJECT_NAME']=='GRAND TOTAL - DAP 1'].values[0]
c=c[9:]
c['SARO NO.'][c['SARO NO.']=='DAR'] = 0
c01=c[c['SARO NO.']!=0]
In [1310]:
updated_dap_data02.fillna(0,inplace=True)
c=updated_dap_data02[['Unnamed: 1','Unnamed: 2','Unnamed: 3','Unnamed: 4',
'Unnamed: 5','Unnamed: 14',
'Unnamed: 15','Unnamed: 16','Unnamed: 17','Unnamed: 12','Unnamed: 19',
'Unnamed: 20','Unnamed: 21']]
names = ['PROJECT_NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P',
'DESCRIPTION', u'SOURCES OF FUND',
u'APPRO. SOURCE', u'OBLIGATION', 'DISBURSEMENT','TOTAL AMOUNT', u'Remarks',
u'GAA/Page #',u'PROPONENT']
c.columns = names
total_releases_02=c['TOTAL AMOUNT'][c['PROJECT_NAME']=='GRAND TOTAL - DAP 2'].values[0]
c=c[3:]
c02=c[c['SARO NO.']!=0]
In [1311]:
updated_dap_data03.fillna(0,inplace=True)
c=updated_dap_data03[['Unnamed: 1','Unnamed: 3','Unnamed: 4','Unnamed: 5',
'Unnamed: 6','Unnamed: 15',
'Unnamed: 16','Unnamed: 17','Unnamed: 18','Unnamed: 13','Unnamed: 20',
'Unnamed: 21','Unnamed: 22']]
names = ['PROJECT_NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P',
'DESCRIPTION', u'SOURCES OF FUND',
u'APPRO. SOURCE', u'OBLIGATION', 'DISBURSEMENT','TOTAL AMOUNT', u'Remarks',
u'GAA/Page #',u'PROPONENT']
c.columns = names
total_releases_03=c['TOTAL AMOUNT'][c['PROJECT_NAME']=='GRAND TOTAL - DAP 3'].values[0]
c=c[9:]
c03=c[c['SARO NO.']!=0]
In [1312]:
updated_dap_data04.fillna(0,inplace=True)
c=updated_dap_data04[['Unnamed: 1','Unnamed: 3','Unnamed: 4','Unnamed: 5',
'Unnamed: 6','Unnamed: 15',
'Unnamed: 16','Unnamed: 17','Unnamed: 18','Unnamed: 13','Unnamed: 20',
'Unnamed: 21','Unnamed: 24']]
names = ['PROJECT_NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P',
'DESCRIPTION', u'SOURCES OF FUND',
u'APPRO. SOURCE', u'OBLIGATION', 'DISBURSEMENT','TOTAL AMOUNT', u'Remarks',
u'GAA/Page #',u'PROPONENT']
c.columns = names
total_releases_04=c['TOTAL AMOUNT'][c['PROJECT_NAME']=='GRAND TOTAL - DAP 4'].values[0]
c=c[10:]
c04=c[c['SARO NO.']!=0]
In [1313]:
updated_dap_data05.fillna(0,inplace=True)
c=updated_dap_data05[['Unnamed: 1','Unnamed: 2','Unnamed: 3','Unnamed: 4',
'Unnamed: 5','Unnamed: 14',
'Unnamed: 15','Unnamed: 16','Unnamed: 17','Unnamed: 12','Unnamed: 19',
'Unnamed: 20','Unnamed: 21']]
names = ['PROJECT_NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P',
'DESCRIPTION', u'SOURCES OF FUND',
u'APPRO. SOURCE', u'OBLIGATION', 'DISBURSEMENT','TOTAL AMOUNT', u'Remarks',
u'GAA/Page #',u'PROPONENT']
c.columns = names
total_releases_05=c['TOTAL AMOUNT'][c['PROJECT_NAME']=='GRAND TOTAL - DAP 5'].values[0]
c=c[9:]
c05=c[c['SARO NO.']!=0]
In [1314]:
updated_dap_data04
Out[1314]:
Disbursement Acceleration Program (DAP)
Unnamed: 1
Unnamed: 2
Unnamed: 3
Unnamed: 4
Unnamed: 5
Unnamed: 6
Unnamed: 7
Unnamed: 8
Unnamed: 9
...
Unnamed: 15
Unnamed: 16
Unnamed: 17
Unnamed: 18
Unnamed: 19
Unnamed: 20
Unnamed: 21
Unnamed: 22
Unnamed: 23
Unnamed: 24
0
(amounts in thousand pesos)
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
2
PROJECT NAME
0
LEGAL\nBASIS
SARO NO.
DATE \nISSUED
P/A/P
0
Other Details (leave blank if none)
APPRO\n(GAA)
DEFICIENCY (per OP approval)
...
SOURCES OF FUND
APPRO SOURCE
STATUS
0
0
Remarks
GAA/Page #
0
0
PROPONENT
3
0
0
0
0
0
Code
Description
0
0
0
...
0
0
Obligation
Disbursement
Actual Outputs
0
0
2013
2012
0
4
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
5
0
DAP 4 per OP Approval Dated September 05, 2012
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
7
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
8
79.
DOLE's Capacity Enhancement to meet Labor Stan...
0
0
0
0
0
0
0
180000
...
0
0
53164
55288
0
0
0
0
0
0
9
0
DOLE-OSEC
0
0
0
0
0
0
0
0
...
0
0
53164
55288
0
0
0
0
0
0
10
0
Acquisiton of communication devices to support...
0
B-13-00536
2013-03-01 00:00:00
A.I.a
General Administration and Support
0
637868
0
...
Overall\nSavings
RA 10155
9164
11288
372 Labor Law Compliance Officers
DAP 4
RA 10155, p. 638
1
0
DOLE
11
0
200 units of Job-Search Kiosk
0
B-13-01104
2013-06-21 00:00:00
B.I.a
Skills Registry Program
0
23300
0
...
Overall\nSavings
RA 10155
44000
44000
111- LGUs; \n89- DOLE Regional Offices/Field O...
DAP 4
RA 10155, p. 639
1
0
DOLE
12
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
14
80.
Emergency Repairs for the Corregidor North Dock
0
0
0
0
0
0
0
0
...
0
0
46713
46713
0
0
0
0
0
0
15
0
DOT-OSEC
0
0
0
0
0
0
0
0
...
0
0
46713
46713
0
0
0
0
0
0
16
0
0
0
A-12-00928
2012-10-15 00:00:00
A.III.c.2.a \n\nA.III.c.2.a.6
Operation and Maintenance of Regional Offices\...
0
206324
46713
...
Overall\nSavings
RA 10155
46713
46713
100% transferred to Corregidor Foundation\n- T...
DAP 4
RA 10155 p. 1018
0
1
DOT
17
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
18
81.
DILG-Central Office to a new NAPOLCOM Building
0
0
0
0
0
0
0
0
...
0
0
100000
95290
0
0
0
0
0
0
19
0
DILG-NAPOLCOM
0
0
0
0
0
0
0
0
...
0
0
100000
95290
0
0
0
0
0
0
20
0
0
0
D-12-00887
2012-10-09 00:00:00
A.I.a.1
General Administrative and Support Services
0
231891
100000
...
Overall\nSavings
RA 10155
100000
95290
60% completed while the remaining 40% are eith...
DAP 4
RA 10155, p. 586
0
1
DILG
21
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
22
82.
Construction of twenty (20) PNP Police Stations
0
0
0
0
0
0
0
0
...
0
0
125603
74921
0
0
0
0
0
0
23
0
DILG-PNP
0
0
0
0
0
0
0
0
...
0
0
125603
74921
0
0
0
0
0
0
24
0
0
0
D-12-00888
2012-10-09 00:00:00
B.I.a
Construction of Police Station
0
100000
128210
...
Overall\nSavings
RA 10155
125603
74921
10 projects completed, 15 projects are on-goin...
DAP 4
RA 10155, p. 595
0
1
DILG
25
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
26
83.
High Profile Jail Facility
0
0
0
0
0
0
0
0
...
0
0
19322
3000
0
0
0
0
0
0
27
0
DILG-BJMP
0
0
0
0
0
0
0
0
...
0
0
19322
3000
0
0
0
0
0
0
28
0
0
0
D-12-00889
2012-10-09 00:00:00
A.III.a.1
Custody, safekeeping and rehabilitation of dis...
0
4406629
20000
...
Overall\nSavings
RA 10155
19322
3000
30% construction ongoing
DAP 4
RA 10155, p. 581
0
1
DILG
29
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
30
84.
Replacement of thirty-four (34) dilapidated un...
0
0
0
0
0
0
0
0
...
0
0
27470
27470
0
0
0
0
0
0
31
0
DILG-NAPOLCOM
0
0
0
0
0
0
0
0
...
0
0
27470
27470
0
0
0
0
0
0
32
0
0
0
D-12-00890
2012-10-09 00:00:00
A.I.a.1
General Administrative and Support Services
0
231891
27470
...
Overall\nSavings
RA 10155
27470
27470
34 MVs and 4 motorcycles were already procured...
DAP 4
RA 10155, p. 586
0
1
DILG
33
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
34
85.
Transfer of DOT offices and its affected attac...
0
0
0
0
0
0
0
0
...
0
0
200260
200260
0
0
0
0
0
0
35
0
DOT-OSEC
0
0
0
0
0
0
0
0
...
0
0
200260
200260
0
0
0
0
0
0
36
0
0
0
A-12-00927
2012-10-15 00:00:00
A.I.a.1
General Administration and Support Services
0
139224
200260
...
Overall\nSavings
RA 10155
200260
200260
Implementation of transfer of DOT offices and ...
DAP 4
RA 10155 p. 1017
0
1
DOT
37
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
38
86.
Financial Support for the Gat Bonifacio Shrine...
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
39
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
40
87.
Expanded Training for Work Scholarship
0
0
0
0
0
0
0
0
...
0
0
0
482892
0
0
0
0
0
0
41
0
DOLE-TESDA
0
0
0
0
0
0
0
0
...
0
0
0
482892
0
0
0
0
0
0
42
0
0
0
B-12-00753
2012-09-14 00:00:00
B.I.a
Training for Work Scholarship Program (TWSP)
0
0
500000
...
Overall\nSavings
RA 10155
0
482892
74,600 Enrolled; 74,504 Graduates
DAP 4
RA 10155 p. 669
0
1
DOLE-TESDA
43
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
44
88.
People's Television Network, Inc. Funding Supp...
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
45
0
PCOO-PROPER
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
46
0
0
0
C-12-00935
2012-10-16 00:00:00
A.II.a.1
Formulation & Coordination of public informati...
0
85679
342537
...
Overall\nSavings
RA 10155
0
0
0
DAP 4
RA 10155 p. 1113
0
1
PCOO
47
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
48
89.
Release of funds for the Sitio Electrification...
0
0
0
0
0
0
0
0
...
0
0
1264000
1264000
0
0
0
0
0
0
49
0
BSGC-NEA
0
0
0
0
0
0
0
0
...
0
0
1264000
1264000
0
0
0
0
0
0
50
0
0
0
F-12-00756
2012-09-14 00:00:00
A.I.a.1
Sitio Electrification Project
0
2000000
1264000
...
Overall\nSavings
RA 10155
1264000
1264000
As of June 30, 2014, 1,930 sitios were energiz...
DAP 4
RA 10155 p. 1293
0
1
NEA
51
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
52
90.
Re-acquisition of Air Rights sold by PNR to Ho...
0
0
0
0
0
0
0
1260000
...
0
0
0
0
0
0
0
0
0
0
53
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
54
91.
Additional MOOE for Patrol Operations at Bajo ...
0
0
0
0
0
0
0
0
...
0
0
44171
44171
0
0
0
0
0
0
55
0
DOTC-PCG
0
0
0
0
0
0
0
0
...
0
0
44171
44171
0
0
0
0
0
0
56
0
0
0
A-12-00743
2012-09-10 00:00:00
A.III.a.1
Promotion of safety of life & property at sea ...
0
3254728
44171
...
Overall\nSavings
RA 10155
44171
44171
Conducted routine patrol in response to the ag...
DAP 4
RA 10155 p. 1069
0
1
DOTC
57
92.
Detailed engineering studies of Goldenberg Man...
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
58
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
59
93.
Rehabilitation of the Watson Building near Mal...
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
60
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
61
94.
Registry System for Basic Sectors in Agricultu...
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
62
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
63
95.
Kilometer Zero - National Monument Hardscape a...
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
64
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
65
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
66
0
GRAND TOTAL - DAP 4
0
0
0
0
0
0
0
4113361
...
0
0
1880703
2294005
0
0
0
0
0
0
67
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
68
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
2
10
12
69
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
70
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
71
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
72
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
73
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
74
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
75
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
76
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
77
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
78
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
79
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
80
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
81
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
82
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
83
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
84
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
85
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
86
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
87
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
88
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
89
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
90
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
91
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
92
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
93
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
94
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
95
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
96
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
97
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
98
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
99
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
100
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
101
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
102
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
103
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
104
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
105
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
106
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
107
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
108
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
109
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
110
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
111
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
112
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
113
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
114
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
115
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
116
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
117
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
118
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
119
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
120
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
121
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
122
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
123
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
124
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
125
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
126
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
127
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
128
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
129
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
130
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
131
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
132
0
Scholarship Program
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
133
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
134
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
135
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
136
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
137
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
138
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
139
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
140
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
141
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
142
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
143
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
144
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
145
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
146
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
147
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
148
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
149
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
150
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
151
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
152
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
153
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
154
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
155
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
156
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
157
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
158
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
159
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
160
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
161
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
162
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
163
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
164
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
165
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
166
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
167
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
168
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
169
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
170
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
171
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
172
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
173
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
174
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
175
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
176
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
177
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
178
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
179
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
180
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
181
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
182
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
183
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
184
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
185
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
186
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
187
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
188
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
189
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
190
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
191
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
192
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
193
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
194
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
195
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
196
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
197
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
198
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
199
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
200
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
201
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
202
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
203
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
204
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
205
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
206
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
207
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
208
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
209
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
210
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
211
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
212
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
213
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
214
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
215
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
216
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
217
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
218
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
219
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
220
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
221
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
222
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
223
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
224
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
225
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
226
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
227
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
228
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
229
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
230
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
231
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
232
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
233
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
234
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
235
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
236
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
237
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
238
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
239
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
240
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
241
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
242
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
243
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
244
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
245
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
246
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
247
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
248
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
249
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
250
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
251
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
252
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
253
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
254
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
255
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
256
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
257
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
258
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
259
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
260
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
261
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
262
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
263
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
264
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
265
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
266
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
267
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
268
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
269
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
270
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
271
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
272
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
273
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
274
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
275
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
276
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
277
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
278
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
279
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
280
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
281
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
282
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
283
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
284
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
285
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
286
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
287
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
288
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
289
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
290
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
291
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
292
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
293
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
294
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
295
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
296
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
297
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
298
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
299
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
300
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
301
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
302
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
303
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
304
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
305
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
306
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
307
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
308
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
309
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
310
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
311
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
312
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
313
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
314
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
315
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
316
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
317
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
318
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
319
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
320
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
321
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
322
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
323
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
324
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
325
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
326
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
327
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
328
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
329
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
330
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
331
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
332
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
333
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
334
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
335
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
336
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
337
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
338
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
339
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
340
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
341
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
342
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
343
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
344
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
345
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
346
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
347
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
348
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
349
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
350
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
351
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
352
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
353
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
354
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
355
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
356
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
357
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
358
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
359
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
360
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
361
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
362
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
363
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
364
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
365
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
366
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
367
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
368
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
369
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
370
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
371
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
372
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
373
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
374
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
375
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
376
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
377
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
378
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
379
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
380
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
381
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
382
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
383
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
384
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
385
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
386
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
387
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
388
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
389
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
390
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
391
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
392
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
393
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
394
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
395
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
396
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
397
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
398
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
399
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
400
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
401
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
402
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
403
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
404
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
405
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
406
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
407
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
408
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
409
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
410
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
411
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
412
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
413
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
414
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
415
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
416
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
417
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
418
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
419
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
420
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
421
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
422
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
423
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
424
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
425
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
426
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
427
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
428
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
429
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
430
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
431
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
432
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
433
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
434
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
435
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
436
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
437
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
438
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
439
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
440
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
441
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
442
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
443
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
444
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
445
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
446
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
447
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
448
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
449
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
450
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
451
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
452
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
453
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
454
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
455
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
456
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
457
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
458
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
459
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
460
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
461
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
462
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
463
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
464
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
465
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
466
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
467
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
468
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
469
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
470
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
471
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
472
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
473
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
474
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
475
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
476
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
477
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
478
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
479
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
480
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
481
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
482
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
483
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
484
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
485
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
486
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
487
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
488
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
489
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
490
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
491
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
492
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
493
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
494
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
495
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
496
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
497
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
498
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
499
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
500
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
501
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
502
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
503
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
504
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
505
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
506
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
507
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
508
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
509
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
510
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
511
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
512
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
513
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
514
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
515
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
516
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
517
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
518
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
519
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
520
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
521
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
522
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
523
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
524
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
525
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
526
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
527
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
528
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
529
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
530
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
531
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
532
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
533
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
534
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
535
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
536
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
537
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
538
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
539
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
540
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
541
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
542
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
543
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
544
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
545
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
546
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
547
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
548
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
549
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
550
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
551
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
552
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
553
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
554
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
555
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
556
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
557
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
558
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
559
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
560
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
561
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
562
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
563
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
564
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
565
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
566
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
567
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
568
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
569
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
570
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
571
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
572
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
573
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
574
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
575
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
576
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
577
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
578
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
579
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
580
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
581
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
582
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
583
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
584
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
585
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
586
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
587
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
588
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
589
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
590
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
591
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
592
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
593
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
594
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
595
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
596
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
597
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
598
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
599
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
600
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
601
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
602
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
603
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
604
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
605
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
606
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
607
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
608
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
609
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
610
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
611
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
612
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
613
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
614
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
615
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
616
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
617
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
618
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
619
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
620
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
621
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
622
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
623
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
624
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
625
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
626
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
627
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
628
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
629
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
630
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
631
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
632
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
633
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
634
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
635
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
636
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
637
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
638
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
639
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
640
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
641
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
642
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
643
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
644
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
645
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
646
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
647
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
648
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
649
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
650
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
651
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
652
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
653
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
654
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
655
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
656
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
657
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
658
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
659
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
660
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
661
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
662
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
663
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
664
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
665
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
666
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
667
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
668
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
669
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
670
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
671
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
672
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
673
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
674
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
675
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
676
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
677
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
678
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
679
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
680
0
0
0
0
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
681
0
0
0
G-13-01166
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
682
0
0
0
G-13-01167
0
0
0
0
0
0
...
0
0
0
0
0
0
0
0
0
0
683 rows × 25 columns
In [1315]:
updated_dap_data06.fillna(0,inplace=True)
c=updated_dap_data06[['Unnamed: 1','Unnamed: 3','Unnamed: 4','Unnamed: 5',
'Unnamed: 6','Unnamed: 15',
'Unnamed: 16','Unnamed: 17','Unnamed: 18','Unnamed: 13','Unnamed: 19',
'Unnamed: 21','Unnamed: 22']]
names = ['PROJECT_NAME', u'SARO NO.', u'DATE \nISSUED', u'P/A/P',
'DESCRIPTION', u'SOURCES OF FUND',
u'APPRO. SOURCE', u'OBLIGATION', 'DISBURSEMENT','TOTAL AMOUNT', u'Remarks',
u'GAA/Page #',u'PROPONENT']
c.columns = names
total_releases_06=c['TOTAL AMOUNT'][c['PROJECT_NAME']=='GRAND TOTAL - DAP 6'].values[0]
c=c[6:]
c06=c[c['SARO NO.']!=0]
In [1334]:
total_releases = total_releases_01 + total_releases_02 + total_releases_03 + total_releases_04 + total_releases_05 + total_releases_06
total_releases
Out[1334]:
144378302.98
In [1336]:
total_w_saro = c01['TOTAL AMOUNT'].sum() + c02['TOTAL AMOUNT'].sum() + c03['TOTAL AMOUNT'].sum() + c04['TOTAL AMOUNT'].sum() + c05['TOTAL AMOUNT'].sum() + c06['TOTAL AMOUNT'].sum()
total_w_saro
Out[1336]:
142959703.98
In [1337]:
c01.shape
dap_data_details = c01.append(c02).append(c03).append(c04).append(c05).append(c06)
b.shape
Out[1337]:
(2009, 13)
In [1321]:
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Vicente Sotto'] = 'Sen. Vicente Sotto III'
dap_data_details['PROPONENT'][dap_data_details.PROPONENT.str.contains('Teofisto')==True] = 'Sen. Teofisto Guingona III'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Ramon Revilla'] = 'Sen. Ramon Revilla Jr.'
dap_data_details['PROPONENT'][dap_data_details.PROPONENT.str.contains('Miriam') == True] = 'Sen. Miriam Defensor-Santiago'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Juan Ponce Enrile'] = 'Sen. Juan Ponce-Enrile'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Jinngoy Estrada'] = 'Sen. Jinggoy Estrada'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Alan Peter Cayetano'] = 'Sen. Allan Peter Cayetano'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Manny Villar'] = 'Sen. Manuel Villar'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Gringo Honasan'] = 'Sen. Gregorio Honasan'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Aquilino Pimentel'] = 'Sen. Aquilino Pimentel III'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen. Antonio Trillanes'] = 'Sen. Antonio Trillanes IV'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen Pia Cayetano'] = 'Sen. Pia Cayetano'
dap_data_details['PROPONENT'][dap_data_details.PROPONENT.str.contains('Pangilinan')==True] = 'Sen. Francis Pangilinan'
dap_data_details['PROPONENT'][dap_data_details.PROPONENT.str.contains('Osme') == True] = 'Sen. Sergio Osmeña'
dap_data_details['PROPONENT'][dap_data_details['PROPONENT']=='Sen.Francis Escudero'] = 'Sen. Francis Escudero'
dap_data_details['TOTAL AMOUNT'] = dap_data_details['TOTAL AMOUNT'] * 1000
In [1322]:
dap_data_details['TOTAL AMOUNT'].sum()
Out[1322]:
142959703980
In [1323]:
dap_data_details[['PROPONENT','TOTAL AMOUNT']].groupby(['PROPONENT']).sum().sort(columns='TOTAL AMOUNT', ascending=False)
Out[1323]:
TOTAL AMOUNT
PROPONENT
DOF-BSP
17476515000
DPWH
15324950323
DILG
12528392187
NHA
11050000000
BSP
10000000000
DA
4778886775
DOTC
4544171000
DedEd
4070722000
PNP, CHED, MMDA, OP
3796351000
DBM,GSIS & DepEd
3461685000
PNP
2860704627
Bureau of Customs
2799611000
see details in annex
2588821499
DOST
2565000000
DOF
2523485000
details in annex
2436434750
DOT
2299198650
DSWD
2073856856
LRTA
1867512000
NEA
1864000000
OP-OPAPP
1819000000
0
1610559415
PHIC
1496103000
DAR
1299717004
TESDA
1100000000
CAAP
1000000000
NIA
950000000
Rep. Abad- P10M; Rep. Abaya- P10M; Rep. Acop- 10M; Rep. Alcala- P10M; Rep. Almonte-P10M; Rep. Amante- P10M; Rep. Amatong- P10M; Rep. Apacible-P10M; Rep. Apostol-P10M; Rep Apsay-P10M; Rep. Arago-P10M; Rep. Asilo-P10M; Rep. Bagatsing-P10M; Rep. Baguilat-P10M; Rep. Balindong-P10M; Rep. Banal-P10M; Rep. Bautista-P10M; Rep. Belmonte V.-P10M; Rep. Benitez-P10M; Rep. Bernos- P10M; Rep. Biazon-P10M; Rep. Calixto-Rubiano-P10M; Rep. Cari-P10M; Rep. Castelo-P10M; Rep. Catamco-P10M; Rep. Cerafica-P10M; Rep. Climaco-P10M;
819000000
BIR
758385000
NDA
730000000
PIDS
660000000
TIEZA
650000000
PPC
644000000
DBM
605077000
LWUA
500000000
PCA
500000000
TPB (Tourism Promotion Board)
500000000
PFDA
500000000
DOLE-TESDA
500000000
HGC
400000000
PHC
357000000
PCOO
342536605
TRC
336000000
Sen. Francis Pangilinan
327840575
Sen. Teofisto Guingona III
326450000
PCIEETRD
300000000
DOH
294000000
Province of Leyte
285137607
PCMC
280000000
LLDA
270000000
Sen. Franklin Drilon
261260000
COP
250000000
DND-PSG
248327000
OEO-OPAPP
248253000
Sen. Juan Ponce-Enrile
239000000
Sen. Gregorio Honasan
238000000
Mayor Carmen Petilla
237697724
BFAR
237500000
Sen. Francis Escudero
235500000
Sen. Aquilino Pimentel III
233100000
MMDA
230000000
Sen. Ralph Recto
225170000
Sen. Vicente Sotto III
214000000
Cong. Joseph Abaya
213250000
Sen. Loren Legarda
200000000
Sen. Jinggoy Estrada
198750000
BOC
192640000
Sen. Pia Cayetano
176050000
Rep. Feliciano Belmonte
171500000
DAP
170000000
Sen. Sergio Osmeña
165352000
Sen. Edgardo Angara
153900000
Sen. Allan Peter Cayetano
150000000
COA
143700000
Mayor Oscar Rodriguez
134300000
Cong. Edgar San Luis
131208500
Cong. Feliciano Belmonte, Jr.
124750000
Cong. Neptali Gonzales II
116000000
Sen. Ramon Revilla Jr.
115000000
Sen. Manuel Villar
105000000
LCP
105000000
DOTC-PCG
104673000
Sen. Ferdinand Marcos
100000000
Sen. Miriam Defensor-Santiago
100000000
Sen. Antonio Trillanes IV
100000000
Sen. Manuel Lapid
100000000
Gov. Jericho Petilla
98000000
Cong. Florencio 'Bem' Noel
94000000
Gov. Victor Tanco
87000000
Rep. Neptali Gonzales
85000000
Gov. Oscar Moreno
81520000
Mayor Rodrigo Duterte
80000000
Gov. Arthur Defensor
79300000
CIC
75000000
Cong. Danilo Suarez
70000000
Gov. Paul Daza
70000000
DOLE
69113340
Rep. Henedina Abad
66618780
Congw. Jocelyn Limkaichong
59500000
Rep. Ayong Maliksi
59479000
PCED
58335000
Cong. Ayong Maliksi
57915200
Gov. Joey S. Salcedo
55000000
Mayor Evelyn Uy
54165000
Mayor Hernani Braganza
52700000
Rep. Lorenzo Tanada
52500000
Cong. Isidro Ungab
52500000
Cong. Raul Daza
52165446
Carmona, Cavite
52084800
Mayor Darlene Antonino-Custodio
50000000
NAP (National Archives of the Philippines)
50000000
Rep. Florencio Noel
50000000
Rep. Joseph Emilio Abaya
48250000
Rep. Raul Daza
45000000
Mayor Sandy Javier
44489035
Rep. Abayon - P2M; Rep. Aglipay - P4.35M; Rep. Batocabe - P2M; Rep. Briones - P1M; Rep. Co - P5M; Rep. Cortuna - P5M; Rep. Ferriol - P5M; Rep. Garbin - P5M; Rep. Gunalao-3M; Rep. D Kho-P2M; Rep. Marcoleta-5M; Rep. Piamonte- 2.5M; Rep. M. Rodriguez- 1M
42850000
Rep. Zenaida Angping
41100000
Rep. Arnulfo Fuentebella
40000000
Cong. Arnulfo Fuentebella
39000000
Mayor Zenaida Mendoza
38000000
Cong. Lorenzo Tañada
36366000
Mayor Alfredo Lim
36000000
VM Edgar Erice
35500000
Rep. Edcel Lagman
35000000
Rep. Isabelle Climaco
33400000
Gov. Eduardo Firmalo
32250000
Rep. Elpidio Barzaga
30000000
Rep. Ana York Bondoc
30000000
Gov. Alfredo Maranon
30000000
Rep. Jorge Banal
30000000
Rep. Dakila Cua
30000000
Gov. Sol Matugas
30000000
Rep. Josephine Joson
30000000
Rep. Rolando Andaya
30000000
PAF
29800000
Rep. Josephine Lacson-Noel
29000000
Cong. Rex Gatchalian
25850000
Gov. Edgardo Tallado
25000000
Cong. Elpidio Barzaga
25000000
Rep. Salvador Escudero
25000000
Rep. Pablo Garcia
25000000
Cong. Rolando Andaya
25000000
Rep. Neil Tupas
25000000
Rep. Evita Arago
25000000
Rep. Crispin Remulla
25000000
Rep. Jocelyn Limkainchong
25000000
Gov. Adiong Mamintal; Gov. Miguel Rene Dominguez; Gov. Esmael Mangudadatu; Gov. Arturo Y. Pingoy Jr; Gov. Emmylou Talino-Mendoza
25000000
Reps. Sherwin Tugna/ Rep. Cinchona Cruz-Gonzales (CIBAC)
25000000
Mayor Roque Verzosa, Jr.
24000000
Mayor Darlene Antonio-Custodio
23500000
Cong. Roberto Puno
22500000
Cong. Pablo Garcia
22500000
Cong. Romero Quimbo
22000000
Rep. Joaquin Nava
22000000
Municipality of Manaoag
21800000
LGUs in Bataan
21200000
Rep. Joseph Violago
20902661
Mayor James Gordon, Jr.
20081083
Rep. Rufus Rodriguez
20000000
Cong. Rodolfo Antonino
20000000
Cong. Rufus Rodriguez
20000000
Cong. Neil Tupas
20000000
Rep. Thelma Almario
20000000
Rep. Rodolfo Farinas
20000000
Mayor Gulam S. Hataman
20000000
Rep. Vincent Crisologo
20000000
Gov. Vilma Santos-Recto
20000000
Rep. Pangalian Balindong
20000000
Gov. Vicente S. Gato
20000000
Gov. Hadji Sadikula Sahali
20000000
Film Development Council of the Philippines
20000000
Go. Joey S. Salceda
20000000
Gov. Abdusakur Tan
20000000
Gov. Abraham Kahlil Mitra
20000000
Gov. Alfonso Umali
20000000
Gov. Arturo Uy
20000000
Gov. Carlos Jericho Petilla
20000000
Gov. Carmencita Reyes
20000000
Rep. Narciso Bravo
20000000
Rep. Isidro Ungab
20000000
Gov. Edgardo M. Chatto
20000000
Gov. Elias Bulut Jr.
20000000
Gov. Esmael Mangudadatu
20000000
Gov. Rodolfo Del ROsario
20000000
Gov. Eugene Balitang
20000000
Rep. Edgar San Luis
20000000
Gov. Jun J. Akbar
20000000
Rep. Rene Relampagos
20000000
Gov. Nestor B. Fongwan
20000000
Mayor Oscar ROdriguez
20000000
Gov. Mamintal Adiong Jr.
20000000
Rep. Nur Jaafar
20000000
Mayor Ricardo L. Suarez
20000000
Gov. Josephine Sato
20000000
Congw. Evita Arago
20000000
Rep. Oscar Malapitan
20000000
Cong. Enrique Cojuangco
19900000
Cong. Rodante Marcoleta
19704000
Rep. Jocelyn Limkaichong
19200000
Rep. Rex Gatchalian
19000000
Cong. Edcel Lagman
18500000
Mayor William Jao
18000000
Mayors Arnold Betita, Rene Cordero, Milliard Villanueva, Roel Belleza, Filomeno Ganzon, Peter Paul Lopez, Neptali Salcedo
18000000
OP
17940000
Congw. Janette Garin
17500000
Sen. Joker Arroyo
17000000
Mayor Alfonso Llopis
16154790
Congw. Anna York Bondoc
16000000
Cong. Florencio 'Bem' Noel
16000000
Gov. Josephine Ramirez-Sato
16000000
Congw. Zenaida Angping
15000000
Gov. Hadji Sadikula Sahali ; Gov. Abdusakur Tan
15000000
Cong. Gabriel Quisumbing
15000000
Cong. Dakila Cua
15000000
Cong. Mel Senen Sarmiento
15000000
Cong. Oscar Malapitan
15000000
Cong. JC Rahman Nava
15000000
Congw. Josefina Joson
15000000
Cong. Joseph Violago
15000000
Mayor Maria Fe Abunda
15000000
Cong. Rene Relampagos
15000000
Cong. Rodolfo Fariñas
15000000
Gov. Mohammad Khalil Dimaporo; Rep. Herminia D. Ramiro; Gov. Jurdin Jesus Romualdo
15000000
Rep. Lorenzo Tanada III
15000000
Congw. Josephine Lacson-Noel
15000000
Rep. Roberto Puno
15000000
Mayor Karen Villanueva
15000000
Gov. Junie Cua; Gov. Luisa Cuaresma; Gov. Faustino Dy III
15000000
Rep. Neil Benedict Montejo
14000000
Cong. Narciso Bravo
14000000
VM Lawrence Fortun
14000000
Cong. Nur Jaafar
12500000
Mayor Arcadio Gorriceta
12500000
Gov. Conrado Nicart, Jr.
12000000
Mayor Ruth Guingona
12000000
Prov. of Samar
11000000
Cong. Rosendo Labadlabad
11000000
Congw. Maria Isabelle Climaco
10500000
Cong. Loreto Leo Ocampos
10500000
Rep. Maximo Rodriguez
10500000
Mayor Virgilio Bote
10078000
Rep. Nelson Collantes
10000000
Gov. Jocel C. Baac, Gov. Eustaquio Bersamin
10000000
Rep. Pablo John Garcia
10000000
Gov. Arthur Defensor; Gov. Carlito S. Marquez
10000000
Rep. Carmen Zamora-Apsay
10000000
Gov. Bellaflor Angara-Castillo ; Gov. Aurelio Umali
10000000
Rep. Cesar Sarmiento
10000000
Rep. Jim Hataman-Saliman
10000000
Rep. Jaye Lacson-Noel
10000000
Gov. Johnny T. Pimentel; Gov. Adolp Edward Plaza
10000000
Congw. Gina de Venecia
10000000
Rep. Neri Colmenares
10000000
Rep. Enrique Cojuangco
10000000
Rep. Edwin Olivarez
10000000
Rep. Josefina Joson
10000000
Rep. Eleanor Bulut-Begtang
10000000
Rep. Isidro Lico
10000000
Rep. Emi Calixto-Rubiano
10000000
Cong. Benjamin Asilo
10000000
Rep. Giorgidi Aggabao
10000000
Cong. Carlos Padilla
10000000
Rep. Marlyn Primicias-Agabas
10000000
Rep. Benjamin Asilo
10000000
Cong. David Kho
10000000
Congw. Thelma Almario
10000000
Rep. Mark Lleandro Mendoza
10000000
Rep. Romero Quimbo
10000000
Cong. Joseph Abaya
10000000
NCIP
10000000
Mayor Gold Calibo
10000000
Rep. Sherwin Tugna
10000000
Cong. Amado Bagatsing
10000000
Mayor Ronaldo Aquino
10000000
Rep. Tupay Loong
10000000
Rep. Kaka Bag-ao
10000000
Cong. Henedina Abad
10000000
Mayor Carmen Cari
10000000
Mayor Gloria Congo
10000000
Cong. Pablo John Garcia
10000000
Rep,. Florencio Noel
10000000
Cong. Eleandro Madrona
10000000
00329- Rep. Rosenda Ann Ocampo, 00331-Rep. Carlo Lopez
10000000
Rep. Rodolfo Antonino
10000000
Rep. Rodel Batocabe
10000000
Rep. Rodante Marcoleta
10000000
Rep. Jose Maria Zubiri
10000000
Rep. Reynaldo Umali
10000000
Rep. Alfredo Benitez
10000000
Cong. Roy Duavit
10000000
Rep. Antonio Alvarez
10000000
Cong. Tomas Apacible
10000000
Rep. Juan Edgardo Angara
10000000
Cong. Mark Llandro Mendoza
9500000
Cong. Rodolfo Biazon
9000000
BM Eunice Babalcon
9000000
Cong. Sergio Apostol
8700000
Gov. Norris Babiera
8305000
Mayor Ferdinand Abesamis
8066000
Cong. Reynaldo Umali
8000000
Rep. Rosendo Labadlabad
7852941
Rep. Irvin Alcala
7500000
Cong. Pangalian Balindong
7500000
Cong. Pangalian Balindong
7500000
Cong. Vincent Crisologo
7500000
Cong. Ben Evardone
7500000
Congw. Isabelle Climaco
7500000
DOj
7000000
Rep. Jerry Trenas
7000000
Rep. Eufranio Eriguel
7000000
Cong. Jerry Treñas
7000000
Cong. Maria Isabelle Climaco
7000000
Cong. Rey Umali
7000000
Mayor Remedios Petilla
6713392
Mayor Ferdinand Amante
6600000
Mayor Marcelo Navarro
6430000
Rep. Janette L. Garin
6400000
Mayor Christian Tinio
6300000
DepEd
6214000
Rep. Mark Liandro Mendoza
6000000
Cong. Antonio Alvarez
6000000
Rep. Edwin Olivares
6000000
Cong. Philip Pichay
5950000
Brgy. Chairman Marcelo Narag
5900000
Rep. Rosenda Ann Ocampo
5500000
Rep. Carlos Padilla
5500000
Rep. Carlo Lopez
5500000
Gor. Victor Yap
5000000
Gov. Alex P. Calingasan
5000000
Cong. Joselito Mendoza
5000000
Rep. Ma. Isabelle Climaco
5000000
Gov. Casimiro Ynares III
5000000
Gov. Douglas Cagas
5000000
Mayor Coefredo Uy
5000000
Rep. Bernadette Herrrera-Dy
5000000
Rep. Sharon Garin
5000000
Rep. Carol Jayne Lopez
5000000
Rep. Rodolfo Biazon
5000000
Rep. Lucy Torres-Gomez
5000000
Mayor Kit Marc Adanza/Mayor Karen Villanueva
5000000
Cong. Carlo Lopez
5000000
Gov. Roel Degamo
5000000
Rep. Godofredo Arquiza
5000000
Gov. Joseph Cua
5000000
Gov. Manuel C. Ortega
5000000
Vice Gov. Rodito Albano
4938000
PA
4756000
Rep. Joselito Mendoza
4750000
Cong. Niel Tupas, Jr.
4558895
Rep. Arturo Robes
4500000
Mayor Kim Amador
4500000
Mayor Jose Esgana
4479520
Cong. Lorenzo Tañada
4440000
DOJ
4200000
Cong. Philip Pichay
4050000
Alfonso, Cavite
4000000
Rep. Julio Ledesma
4000000
Rep. Mark Llandro Mendoza
4000000
Various Baranggays in Manaoag, Pangasinan
4000000
Rep. Jose Ping-ay
4000000
Rep. Alejandro Mirasol
4000000
Mayor Jose Mario Pahang
3750000
Rep. Mercedes Navarro
3750000
Rep. Janette Garin
3600000
Brgy. Chairman Rizalino Luyun
3503000
Cong. Narciso Bravo/Cong. Isidro Ungab (G-12-01014)
3500000
Brgy. Capt. Edgardo Aguas
3500000
Mayor Kit Marc Adanza
3000000
Mayor Alexander de Paz
3000000
Rep. Agapito Guanlao-2M Rep. David Kho- 1M
3000000
BM Nancy Corazon Bacurnay
3000000
Rep Joaquin Nava
3000000
Rep. Abayon - P1M - Rep. Aglipay - P0.15M; Rep. Estrella - P0.35M; Rep. Rep D. Kho - P0.5M; Rep. Ping-ay - P1M
3000000
Rep. Eurfranio Eriguel
3000000
Rep. Mark Aeron Sambar
3000000
Gov. Edgardo Chatto
3000000
Rep. Ben Evardone
2500000
Rep. Mariano Piamonte
2500000
Rep. Abayon - P0.25M; Rep. Aglipay - P0.1M; Rep. Estrella - P0.5M; Rep. D Kho - P0.5M; Rep. Benedict Montejo - P1M
2350000
Rep. Robert Estrella
2200000
Cong. Lorenzo Tañada
2000000
Cong. Anthony Del Rosario
2000000
Cong. Florencio Noel
2000000
Province of Samar
2000000
Gov. Edgar Chatto
2000000
Mayor Juan Toreja
2000000
Rep. Mylene Albano
2000000
Mayor Cynthia Linao-Estanislao
2000000
Municipality of Gumaca & Plaridel, Quezon
1800000
Rep. Maria Isabelle Climaco
1600000
Rep. Ronald Cosalan
1600000
Rep. Nicanor Briones
1500000
Rep Carlos Padilla
1500000
Rep. Abayon - P0.5M; Rep. Aglipay - P0.1M; Rep. Estrella - P0.35M; Rep. D. Kho - P0.5M
1450000
Rep. Josephiine Lacson-Noel
1000000
Rep. Rex. Gatchalian
1000000
Mayor Ligaya Apura
1000000
Rep. David Kho
500000
Rep. Erineo Maliksi
500000
Rep Lorenzo Tanada
500000
Rep.. Feliciano Belmonte
500000
Rep. Emmeline Aglipay
300000
Rep. Daryl Grace Abayon
250000
Rep. Manuel Agyao
250000
Realignment
-2000000
In [1338]:
missing_proponent = ['see details in annex','details in annex',]
proponents_who = dap_data_details[dap_data_details['PROPONENT'].isin(missing_proponent)]
proponents_who[['DESCRIPTION','TOTAL AMOUNT']].groupby('DESCRIPTION').sum().sum()
Out[1338]:
TOTAL AMOUNT 5025256.249
dtype: float64
In [1331]:
porkers_details = dap_data_details[dap_data_details.PROPONENT.str.contains('Sen')==True]
porkers_details['PROPONENT'].apply(lambda x: x.strip())
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Vicente Sotto'] = 'Sen. Vicente Sotto III'
porkers_details['PROPONENT'][porkers_details.PROPONENT.str.contains('Teofisto')] = 'Sen. Teofisto Guingona III'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Ramon Revilla'] = 'Sen. Ramon Revilla Jr.'
porkers_details['PROPONENT'][porkers_details.PROPONENT.str.contains('Miriam')] = 'Sen. Miriam Defensor-Santiago'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Juan Ponce Enrile'] = 'Sen. Juan Ponce-Enrile'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Jinngoy Estrada'] = 'Sen. Jinggoy Estrada'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Alan Peter Cayetano'] = 'Sen. Allan Peter Cayetano'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Manny Villar'] = 'Sen. Manuel Villar'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Gringo Honasan'] = 'Sen. Gregorio Honasan'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Aquilino Pimentel'] = 'Sen. Aquilino Pimentel III'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen. Antonio Trillanes'] = 'Sen. Antonio Trillanes IV'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen Pia Cayetano'] = 'Sen. Pia Cayetano'
porkers_details['PROPONENT'][porkers_details.PROPONENT.str.contains('Pangilinan')] = 'Sen. Francis Pangilinan'
porkers_details['PROPONENT'][porkers_details.PROPONENT.str.contains('Osme')] = 'Sen. Sergio Osmeña'
porkers_details['PROPONENT'][porkers_details.PROPONENT=='Sen.Francis Escudero'] = 'Sen. Francis Escudero'
porkers = porkers_details[['PROPONENT','TOTAL AMOUNT']]
porkers['TOTAL AMOUNT'].sum()
Out[1331]:
3942770.575
In [ ]:
porkers.groupby('PROPONENT').sum().sort(columns='TOTAL AMOUNT',ascending=False)
In [ ]:
senator = 'Pangilinan'
projects = porkers_details[porkers_details.PROPONENT.str.contains(senator)]
projects[['PROJECT_NAME','DESCRIPTION','TOTAL AMOUNT']].groupby(['PROJECT_NAME','DESCRIPTION']).sum().sort(columns='TOTAL AMOUNT',ascending=False)
In [ ]:
porkers_details = dap_data_details[dap_data_details.PROPONENT.str.contains('Cong|Rep')==True]
porkers_details[['PROPONENT','TOTAL AMOUNT']].groupby('PROPONENT').sum().sort(columns='TOTAL AMOUNT',ascending=False)
#porkers_details['TOTAL AMOUNT'].sum()
In [ ]:
cong = 'Cong. Neil Tupas'
projects = porkers_details[porkers_details.PROPONENT.str.contains(cong)]
projects[['PROJECT_NAME','DESCRIPTION','TOTAL AMOUNT']].groupby(['PROJECT_NAME','DESCRIPTION']).sum().sort(columns='TOTAL AMOUNT',ascending=False)
In [ ]:
proponent = ['Mayor Carmen Petilla','Province of Leyte','Gov. Jericho Petilla','Mayor Remedios Petilla','Gov. Carlos Jericho Petilla']
proponent_project = dap_data_details[['PROJECT_NAME','DESCRIPTION','TOTAL AMOUNT','PROPONENT','Remarks']][dap_data_details.PROPONENT.str.contains('Petilla|Leyte')==True].sort(ascending=False,columns='TOTAL AMOUNT')
In [ ]:
proponent_project['TOTAL AMOUNT'].sum()*1000
In [ ]:
proponent_project
In [ ]:
proponent = ['Mayor Oscar Rodriguez']
proponent_project = dap_data_details[['PROJECT_NAME','DESCRIPTION','TOTAL AMOUNT','PROPONENT']][dap_data_details['PROPONENT'].isin(proponent)].sort(ascending=False,columns='TOTAL AMOUNT')
proponent_project
In [ ]:
porkers_details = dap_data_details[dap_data_details.PROPONENT.str.contains('Gov|Mayor')==True]
porkers_details[['PROPONENT','TOTAL AMOUNT']].groupby('PROPONENT').sum().sort(columns='TOTAL AMOUNT',ascending=False)
porkers_details['TOTAL AMOUNT'].sum()
In [ ]:
cong = 'ayor Rodrigo Duterte'
projects = porkers_details[porkers_details.PROPONENT.str.contains(cong)]
projects[['PROJECT_NAME','DESCRIPTION','TOTAL AMOUNT']].groupby(['PROJECT_NAME','DESCRIPTION']).sum().sort(columns='TOTAL AMOUNT',ascending=False)
In [ ]:
dap_data_details[['PROJECT_NAME','Remarks','TOTAL AMOUNT']][dap_data_details.PROJECT_NAME.str.contains('Flood')==True]
In [ ]:
flood = dap[dap.Description.str.contains('flood')]
#flood[['Proposed','Released']].sum()
flood[['Tranche','Department','Agency','Proposed','Released']]
In [ ]:
dap_data_details['PORKERS'] = 0
dap_data_details['PORKERS'][dap_data_details.PROPONENT.str.contains('Cong|Rep')==True] = 'CONGRESS'
dap_data_details['PORKERS'][dap_data_details.PROPONENT.str.contains('Gov|Mayor')==True] = 'LGU'
dap_data_details['PORKERS'][dap_data_details.PROPONENT.str.contains('Sen')==True] = 'SENATE'
missing_proponent = ['see details in annex','details in annex']
dap_data_details['PORKERS'][dap_data_details.PROPONENT.str.contains('Cong. Mel Senen Sarmiento')==True] = 'CONGRESS'
dap_data_details['PORKERS'][dap_data_details['PROPONENT'].isin(missing_proponent)] = 'MISSING PROPONENT'
In [1339]:
#dap_data_details.to_csv('DAP_W_PROPONENTS_CLEAN.csv')
dap_data_details['TOTAL AMOUNT'].sum()
Out[1339]:
142959703.98
In [ ]:
def convert_amount(x):
try:
x.strip()
x = "".join(x.split(','))
except:
float(x)
return float(x)
In [ ]:
Content source: RickBahague/ICT4P
Similar notebooks: